#ifndef _SCHEDULER_HPP_
#define _SCHEDULER_HPP_
/*
  I will not use gdt, ldt, and tss when implementing process schdule.
  I repudiate them!
  I repudiate all those disigned in a hardware-style!
  
  Processes have 4 states.
  They are: blocked, ready, running, suspend(This state will not impled in my recent plan.).
*/
STRUCT(process){
  type::u32             counter;     
  type::u32             priority;     
};
#define NR_PROCESS 64
CLASS(Scheduler)
{
 public:
  int                                    nr_process(){return NR_PROCESS;}
  void                                   start();           
  void                                   create_process();                      
 private:
  process::pointer                       running_process;
};  


#endif
